package com.youxin.dataStream.timeWindow;

import org.apache.flink.api.java.tuple.Tuple;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.functions.windowing.ProcessWindowFunction;
import org.apache.flink.streaming.api.windowing.windows.TimeWindow;
import org.apache.flink.util.Collector;

/**
 * 窗口，窗口已经实现的头按照时间和条数的计算（timeWindow,countWindow）
 * 窗口还可以分为，滑动窗口和滚动窗口
 * 可以自己实现狂口操作
 *
 * keyBy之后
 *
 * 没有keyByz直接调用windowAll
 *
 * 以下是增量聚合（可以自己实现，实现aggregateFunction）
 * reduce
 * aggregate（自定义实现，例如可以实现求平均值的）
 * sum   min max
 *
 *
 * window后使用
 * 全量聚合：（等到数据全部到齐之后才做操作）
 * apply(windowFunction)
 * process（oricessWindowFunction）   //apply的升级 增加了上下文
 *
 *
 */
public class Windowtext {


    public static class MyProcess extends ProcessWindowFunction<Tuple2<Integer,Integer>, String, Tuple, TimeWindow>{

        @Override
        public void process(Tuple key, Context context, Iterable<Tuple2<Integer, Integer>> elements, Collector<String> out) throws Exception {

        }
    }
}
